home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / news11r0.zip / NEWSPPER.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-06-01  |  5KB  |  347 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     String   STRING001
  26.     String   STRING002
  27.     String   STRING003
  28.     String   STRING004
  29.     String   STRING005
  30.     String   STRING006
  31.     String   STRING007
  32.     String   STRING008
  33.     String   STRING009
  34.     String   STRING010
  35.     String   STRING011
  36.     String   STRING012
  37.     String   STRING013
  38.     String   STRING014
  39.     String   STRING015
  40.     String   STRING016
  41.     String   STRING017
  42.     String   STRING018
  43.     String   STRING019
  44.     String   STRING020
  45.     String   STRING021
  46.     String   STRING022
  47.     String   STRING023
  48.     String   STRING024
  49.     String   STRING025
  50.     String   STRING026
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     STRING006 = Upper(PPEPath() + PPEName() + ".INI")
  55.     If (Exist(STRING006)) Goto LABEL001
  56.     STRING021 = "Unable to read " + STRING006
  57.     INTEGER001 = 1
  58.     STRING023 = "INIT:inifinder"
  59.     Gosub LABEL012
  60.     Goto LABEL006
  61.     :LABEL001
  62.     BOOLEAN001 = 1
  63.     STRING007 = "1.10"
  64.     STRING001 = "6E457753"
  65.     STRING002 = ReadLine(PCBDat(), 94)
  66.     STRING003 = ReadLine(STRING006, 1)
  67.     STRING004 = Upper(ReadLine(STRING006, 2))
  68.     STRING008 = Upper(ReadLine(STRING006, 3))
  69.     If (Exist(STRING008)) Goto LABEL002
  70.     STRING021 = "Unable to read " + STRING008
  71.     INTEGER001 = 1
  72.     STRING023 = "INIT:datafinder"
  73.     Gosub LABEL012
  74.     Goto LABEL006
  75.     :LABEL002
  76.     If (Len(STRING004) <= 1) STRING004 = "0000000000000000"
  77.     STRING002 = Mid(STRING002, 1, 4)
  78.     INTEGER005 = 1
  79.     While (INTEGER005 <= 4) Do
  80.         STRING005 = Asc(Mid(STRING002, INTEGER005, 1))
  81.         STRING001 = STRING001 + I2S(STRING005, 16)
  82.         Inc INTEGER005
  83.     EndWhile
  84.     If (STRING001 == STRING004) BOOLEAN001 = 0
  85.     STRING009 = "@X07"
  86.     If (BOOLEAN001) Goto LABEL003
  87.     GetUser
  88.     STRING010 = Upper(ReadLine(STRING006, 4))
  89.     STRING011 = Upper(ReadLine(STRING006, 5))
  90.     STRING013 = ReadLine(STRING006, 6)
  91.     STRING015 = ReadLine(STRING006, 7)
  92.     STRING014 = ReadLine(STRING006, 8)
  93.     STRING016 = ReadLine(STRING006, 9)
  94.     STRING017 = ReadLine(STRING006, 10)
  95.     STRING018 = ReadLine(STRING006, 11)
  96.     STRING019 = ReadLine(STRING006, 12)
  97.     STRING020 = Upper(ReadLine(STRING006, 13))
  98.     STRING012 = U_PageLen
  99.     If (STRING012 % 2 == 1) STRING012 = STRING012 - 1
  100.     Goto LABEL004
  101.     :LABEL003
  102.     STRING010 = "@X70"
  103.     STRING011 = "@X70"
  104.     STRING013 = "| ░▒░ "
  105.     STRING015 = "| ░▒░ "
  106.     STRING014 = " ░▒░ |"
  107.     STRING016 = " ░▒░ |"
  108.     STRING017 = ">"
  109.     STRING018 = "<"
  110.     STRING019 = "-"
  111.     STRING012 = 22
  112.     :LABEL004
  113.     If (Len(STRING013) > 6) STRING013 = Left(STRING013, 6)
  114.     If (Len(STRING015) > 6) STRING015 = Left(STRING015, 6)
  115.     If (Len(STRING014) > 6) STRING014 = Left(STRING014, 6)
  116.     If (Len(STRING016) > 6) STRING016 = Left(STRING016, 6)
  117.     If (Len(STRING017) > 1) STRING017 = Left(STRING017, 1)
  118.     If (Len(STRING018) > 1) STRING018 = Left(STRING018, 1)
  119.     If (Len(STRING019) > 1) STRING019 = Left(STRING019, 1)
  120.     If (Len(STRING013) < 6) Then
  121.         INTEGER005 = 6 - Len(STRING013)
  122.         STRING013 = STRING013 + Space(INTEGER005)
  123.     Endif
  124.     If (Len(STRING015) < 6) Then
  125.         INTEGER005 = 6 - Len(STRING015)
  126.         STRING015 = STRING015 + Space(INTEGER005)
  127.     Endif
  128.     If (Len(STRING014) < 6) Then
  129.         INTEGER005 = 6 - Len(STRING014)
  130.         STRING014 = Space(INTEGER005) + STRING014
  131.     Endif
  132.     If (Len(STRING016) < 6) Then
  133.         INTEGER005 = 6 - Len(STRING016)
  134.         STRING016 = Space(INTEGER005) + STRING016
  135.     Endif
  136.     STRING017 = Chr(Asc(STRING017))
  137.     STRING018 = Chr(Asc(STRING018))
  138.     STRING019 = Chr(Asc(STRING019))
  139.     STRING012 = STRING012 - 1
  140.     STRING013 = STRING010 + STRING013
  141.     STRING015 = STRING010 + STRING015
  142.     STRING014 = STRING010 + STRING014 + STRING009
  143.     STRING016 = STRING010 + STRING016 + STRING009
  144.     STRING024 = "@X0C[UNREGISTERED]@X07"
  145.     If (BOOLEAN001) Then
  146.         Log "Executing " + PPEName() + " v" + STRING007 + " " + StripAtx(STRING024), 0
  147.     Else
  148.         Log "Executing " + PPEName() + " v" + STRING007, 0
  149.     Endif
  150.     Gosub LABEL007
  151.     Gosub LABEL010
  152.     If (STRING020 == "Y") Then
  153.         Cls
  154.     Endif
  155.     StartDisp 1
  156.     INTEGER005 = 1
  157.     For INTEGER004 = 1 To INTEGER002
  158.         INTEGER003 = 2
  159.         While (INTEGER005 <= STRING012 - 1) Do
  160.             Select Case (INTEGER005)
  161.                 Case 1
  162.                     PrintLn STRING026
  163.                     PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
  164.                     INTEGER005 = 2
  165.                 Case STRING012 - 1
  166.                     PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
  167.                     More
  168.                     If (Abort()) Then
  169.                         KbdStuff "^M"
  170.                         Goto LABEL006
  171.                     Endif
  172.                     Dec INTEGER004
  173.                     STRING025 = StripAtx(ReadLine(STRING008, INTEGER004))
  174.                     Gosub LABEL011
  175.                     If (INTEGER003 == 2) Then
  176.                         STRING025 = STRING011 + STRING025
  177.                         INTEGER003 = 1
  178.                     Else
  179.                         STRING025 = STRING010 + STRING025
  180.                         INTEGER003 = 2
  181.                     Endif
  182.                     STRING025 = STRING015 + STRING025 + STRING016
  183.                     PrintLn STRING025
  184.                     Inc INTEGER004
  185.                 Case INTEGER002
  186.                     If (INTEGER005 < STRING012 - 1) Then
  187.                         While (INTEGER005 <> STRING012 - 2) Do
  188.                             If (INTEGER003 == 2) Then
  189.                                 STRING025 = STRING011 + Space(66)
  190.                                 INTEGER003 = 1
  191.                                 Goto LABEL005
  192.                             Endif
  193.                             STRING025 = STRING010 + Space(66)
  194.                             INTEGER003 = 2
  195.                             :LABEL005
  196.                             STRING025 = STRING015 + STRING025 + STRING016
  197.                             PrintLn STRING025
  198.                             Inc INTEGER005
  199.                         EndWhile
  200.                         INTEGER005 = STRING012
  201.                     Endif
  202.                     PrintLn STRING010 + STRING013 + Space(66) + STRING014 + STRING009
  203.             End Select
  204.             Inc INTEGER005
  205.         EndWhile
  206.         INTEGER005 = 1
  207.     Next
  208.     PrintLn STRING026
  209.     More
  210.     :LABEL006
  211.     Print "@X0F" + Upper(PPEName()) + " v" + STRING007
  212.     If (BOOLEAN001) Print " - " + STRING024
  213.     PrintLn "@X0F - c.1993-94, George Silberstern@X07"
  214.     If (!BOOLEAN001) PrintLn "@X0BRegistered to: " + STRING003 + "@X07"
  215.     If (BOOLEAN001) Delay 182
  216.     ResetDisp
  217.     If (DbgLevel() <> 0) DbgLevel 0
  218.     Stop
  219.     End
  220.     :LABEL007
  221.     FOpen 1, STRING008, 0, 2
  222.     If (Ferr(1)) Then
  223.         STRING021 = "Unable to open " + STRING008
  224.         INTEGER001 = 2
  225.         STRING023 = "SUB:fetchsize"
  226.         Gosub LABEL012
  227.         Goto LABEL006
  228.     Endif
  229.     FGet 1, STRING025
  230.     :LABEL008
  231.     If (Ferr(1)) Goto LABEL009
  232.     Inc INTEGER002
  233.     FGet 1, STRING025
  234.     Goto LABEL008
  235.     :LABEL009
  236.     FClose 1
  237.     Return
  238.     :LABEL010
  239.     STRING017 = Chr(Asc(STRING017))
  240.     STRING018 = Chr(Asc(STRING018))
  241.     STRING019 = Chr(Asc(STRING019))
  242.     For INTEGER005 = 1 To 76
  243.         STRING026 = STRING026 + STRING019
  244.     Next
  245.     STRING026 = STRING010 + STRING017 + STRING026 + STRING018 + STRING009
  246.     Return
  247.     :LABEL011
  248.     If (Len(STRING025) >= 66) Then
  249.         STRING025 = Mid(STRING025, 1, 66)
  250.     ElseIf (Len((STRING025 < 66))) Then
  251.         STRING025 = STRING025 + Space(66 - Len(STRING025))
  252.     Endif
  253.     Return
  254.     :LABEL012
  255.     STRING022 = "ERROR: [" + String(INTEGER001) + "] " + STRING021
  256.     PrintLn "@X0C" + STRING022 + "@X0F (" + STRING023 + ")@X07"
  257.     Log STRING022 + "(" + STRING023 + ")", 0
  258.     Return
  259.  
  260. ;------------------------------------------------------------------------------
  261. ;
  262. ; Usage report (before postprocessing)
  263. ;
  264. ; ■ Statements used :
  265. ;
  266. ;    1       End
  267. ;    1       Cls
  268. ;    2       More
  269. ;    43      Goto 
  270. ;    98      Let 
  271. ;    2       Print 
  272. ;    10      PrintLn 
  273. ;    39      If 
  274. ;    1       FOpen 
  275. ;    1       FClose 
  276. ;    2       FGet 
  277. ;    1       ResetDisp
  278. ;    1       StartDisp 
  279. ;    1       GetUser
  280. ;    3       Log 
  281. ;    6       Gosub 
  282. ;    4       Return
  283. ;    1       Delay 
  284. ;    5       Inc 
  285. ;    1       Dec 
  286. ;    1       Stop
  287. ;    1       KbdStuff 
  288. ;    1       DbgLevel 
  289. ;
  290. ;
  291. ; ■ Functions used :
  292. ;
  293. ;    1       %
  294. ;    68      +
  295. ;    11      -
  296. ;    7       ==
  297. ;    2       <>
  298. ;    8       <
  299. ;    5       <=
  300. ;    8       >
  301. ;    5       >=
  302. ;    26      !
  303. ;    4       &&
  304. ;    2       ||
  305. ;    19      Len(
  306. ;    7       Upper()
  307. ;    3       Mid()
  308. ;    7       Left()
  309. ;    10      Space()
  310. ;    2       Ferr()
  311. ;    6       Chr()
  312. ;    7       Asc()
  313. ;    1       Abort()
  314. ;    2       StripAtx()
  315. ;    1       String()
  316. ;    1       PCBDat()
  317. ;    1       PPEPath()
  318. ;    15      ReadLine()
  319. ;    2       Exist()
  320. ;    1       I2S()
  321. ;    4       PPEName()
  322. ;    1       DbgLevel()
  323. ;
  324. ;------------------------------------------------------------------------------
  325. ;
  326. ; Analysis flags : d
  327. ;
  328. ; d - Access PCBOARD.DAT ■ 2
  329. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  330. ;     for many PPE so they can find various informations on the system
  331. ;     (system paths, max number of lines in messages, ...) but it may also
  332. ;     be a way to gather vital informations.
  333. ;     ■ Search for : PCBDAT()
  334. ;
  335. ;------------------------------------------------------------------------------
  336. ;
  337. ; Postprocessing report
  338. ;
  339. ;    2       For/Next
  340. ;    3       While/EndWhile
  341. ;    13      If/Then or If/Then/Else
  342. ;    1       Select Case
  343. ;
  344. ;------------------------------------------------------------------------------
  345. ;                 AEGiS Corp - Break the routines, code against the machines!
  346. ;------------------------------------------------------------------------------
  347.